package com.san.metadata.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;

import com.san.base.dao.BaseDao;
import com.san.metadata.domain.BusinessDataDO;
import com.san.metadata.vo.BusinessDataVO;

/**
 * 业务元数据dao
 * 
 * @author SuperSR
 * @date 2019年3月8日 下午5:31:01
 *
 */
@Mapper
public interface BusinessDataDao extends BaseDao {

	BusinessDataDO getById(Long id);

	BusinessDataDO getByName(String busiName);

	/**
	 * 查询业务元数据列表，传入参数中数据类型、业务大类、业务小类，传入数据为String类型
	 * 
	 * @param map
	 * @return
	 */
	List<BusinessDataDO> list(Map<String, Object> map);

	int count(Map<String, Object> map);

	int save(BusinessDataVO businessDataVO);

	int remove(Long id);

	int batchRemove(Long ids);

	/**
	 * 修改业务元数据状态
	 * 
	 * @param businessDataVO 业务元数据实体类
	 * @return
	 */
	int changeStatus(BusinessDataVO businessDataVO);

	/**
	 * 根据数据类型查询业务元数据
	 * 
	 * @param dataType 数据类型
	 * @return
	 */
	List<BusinessDataDO> getByDataType(String dataType);

	/**
	 * 根据算法类型查询业务元数据
	 * 
	 * @param algorithmType 算法类型
	 * @return
	 */
	List<BusinessDataDO> getByAlgorithmType(List<Integer> algorithmType);
}
